The user interface based on the browser (webUI) has already increasingly extensively replaced the UI software at the PC side and applied to the device of uFi type and the device of data card type, and the browsers built in the clients, such as, the computer, the mobile phone, etc. can inquire and modify the basic configuration of the data card or uFi conveniently and rapidly through visiting the webUI. The application of the webUI must be based on the Web server, and the main function of the Web server is to provide the online information browsing service. The communication technology used when setting up the network connection between the Web server and the client, such as, the computer, the mobile phone, etc., is called Socket. However, the Socket communication mechanism of the embedded Rex system is different from the Socket mechanism of the embedded Linux system, which is a specific asynchronous unblocking-mode Socket on that platform, therefore, it is different from the synchronous blocking-mode Socket, and it does not have an overtime mechanism, because it does not need the overtime mechanism at all under the normal situation.
We find that, in the practice process, almost all the computers and intelligent mobile phones can visit the Web server very smoothly through their own browsers, however, a certain series of MAC notebook from Apple company will have a certain problem when visiting the Web server: after the browser of the MAC notebook opens the WebUI smoothly and performs the browsing or operation for some time, the problem that it cannot continue browsing or operating will appear.
Through analysis, the presentation reason of the problem is that the Web task cannot receive the semaphore sent by the Socket underlying layer and it is in the waiting state all the time, and it is unable to continue processing the procedures, such as, connecting, reading, writing, closing, etc. Now the Web server is unable to be visited by the client. It is discovered through further analysis that, the Web task cannot receive the semaphore sent by the Socket underlying layer, which is because the Socket underlying layer does not monitor and obtain any Socket event of the client. It is discovered through capturing the TCP packet of the 80 monitoring port that, because of a certain reason of the MAC client, it will no longer send any Socket request to the monitoring port.